The present invention relates to memory devices, and more particularly, to a method and apparatus for programming a memory device having multi-state cells.
Electrically erasable and programmable memory devices having arrays of what are known as multi-bit or multi-state flash cells are found in a wide variety of electrical devices. A flash cell, also called a floating gate transistor memory cell, is similar to a field effect transistor, having a channel region between a source and a drain and a control gate over the channel region. In addition the flash cell has a floating gate between the control gate and the channel region. The floating gate is separated from the channel region by a layer of gate oxide, and an interpoly dielectric layer separates the control gate from the floating gate. Both the control gate and the floating gate are formed of doped polysilicon. The floating gate remains floating or electrically isolated. A flash cell is programmed by applying appropriate voltages to the control gate, the drain, and the source, causing electrons to pass from the channel region to the floating gate through the gate oxide. The voltage applied to the control gate, called a programming voltage, determines the amount of charge residing on the floating gate after programming, and the charge determines the voltage that must be applied to the control gate in order to allow the flash cell to conduct current between the source and the drain. This voltage is termed the threshold voltage of the flash cell, and is the physical form of the data stored in the flash cell. As charge is added to the floating gate the threshold voltage of the flash cell increases.
A multi-bit or multi-state flash cell is produced by creating multiple, distinct threshold voltage levels over a voltage range within the flash cell. Each distinct threshold voltage level corresponds to a set of data bits, with the number of bits representing the amount of data which can be stored in the multi-state flash cell. This method allows multiple bits of binary data to be stored within the same flash cell. When reading the state of the flash cell, the threshold voltage level for which the flash cell conducts current corresponds to a bit set representing data programmed into the flash cell.
A multi-state flash cell is programmed by applying a programming voltage to the control gate and holding the drain to a constant voltage over a proper time period to store enough charge in the floating gate to move the threshold voltage of the flash cell to a desired level. This threshold voltage level represents a state of the flash cell corresponding to the data stored in the flash cell. For example, a flash cell that is capable of storing four threshold voltage levels may contain two data bits, each bit having a value of xe2x80x9c0xe2x80x9d or xe2x80x9c1.xe2x80x9d
When a multi-state flash cell is programmed the programming voltage must be precise to ensure that the multi-state flash cell is accurately programmed. Multi-state flash cells are often over-programmed, or programmed with an excessive programming voltage. Accordingly, there exists a need to adequately program multi-state flash cells in memory devices and to appropriately manage over-programmed multi-state flash cells.
The above mentioned deficiencies in the conventional method of programming cells in a memory device are addressed in the following detailed description of the preferred embodiments of the invention. According to one embodiment of the invention a group of multi-state memory cells in a memory device are programmed to a first state, and then cells in a first subset of the group are programmed to a second state different from the first state.
Advantages of the invention will be apparent to one skilled in the art upon an examination of the detailed description of the preferred embodiments.